home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / WWRegistrierung.brarexx < prev    next >
Text File  |  1998-08-23  |  6KB  |  225 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern eines Registrierungsformulars mit Hilfe von WordWorth
  3. ** $VER: WWRegistrerung.brarexx V1.02 (23.08.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. WWVorlage    = "WWDokumente/Registrierung.ww";
  12. WWDokument    = "t:Registrierung.ww";
  13. WWPort        = "WORDWORTH."
  14.  
  15. LF                    = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (WWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             WWPort = WWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. WWVorlage        = MTR_RESULT || WWVorlage;
  39. ADDRESS COMMAND "copy" WWVorlage WWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. PRINTFIND;
  52.  
  53. /* Neues Dokument öffnen */
  54. ADDRESS VALUE WWPort;
  55. NEW;
  56. WWPort = RESULT;
  57.  
  58. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  59.     ADDRESS VALUE WWPort;
  60.  
  61.     CALL DatenAufbereiten;
  62.     SELECT;
  63.         WHEN Druckart = 0 THEN    /* Drucken    */
  64.             DO;
  65.                 ADDRESS VALUE WWPort;
  66.                 PRINT;
  67.                 ADDRESS VALUE ARexxPort;
  68.                 MTSCREENTOFRONT;
  69.             END;
  70.         WHEN Druckart = 1 THEN    /* Vorschau    */
  71.             ADDRESS VALUE ARexxPort;
  72.         WHEN Druckart = 2 THEN    /* Sichern    */
  73.             DO;
  74.                 ADDRESS VALUE WWPort;
  75.                 SAVEAS;
  76.                 ADDRESS VALUE ARexxPort;
  77.                 MTSCREENTOFRONT;
  78.             END;
  79.         OTHERWISE
  80.             DO;
  81.                 ES_TITLE                = "Warnung";
  82.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  83.                 ES_GADGETFORMAT    = "Ok";
  84.                 EASY_REQUEST;
  85.                 Ende_Kennzeichen    = 'J';
  86.             END;
  87.     END;
  88.  
  89.     PRINTFIND;
  90. END;
  91.  
  92. /* WordWorth-Datei aus t: wieder entfernen */
  93. ADDRESS COMMAND "delete" WWDokument;
  94.  
  95. /* Oberfläche wieder entsperren */
  96. ADDRESS VALUE ARexxPort;
  97. FREEGUI;
  98.  
  99. EXIT;
  100.  
  101. DatenAufbereiten:
  102.     OPEN FILENAME WWDokument FORCE;
  103.  
  104.     ADDRESS VALUE ARexxPort;
  105.  
  106.     FORMAT_DATE_LONG date(s);
  107.     PRINTDATE = MTR_RESULT;
  108.  
  109.     NAME_OF_SALUTATION OFFICE.ADDRESS.SALUTATION;
  110.     ZW_Anrede = MTR_RESULT;
  111.  
  112.     IF OFFICE.ADDRESS.BANK_CODE_NUMBER = "0" THEN
  113.         OFFICE.ADDRESS.BANK_CODE_NUMBER = "";
  114.  
  115.     GET_COUNTRY OFFICE.ADDRESS.COUNTRY_NUMBER;
  116.  
  117.     FORMAT_DATE_LONG OFFICE.ADDRESS.BIRTHDAY;
  118.     ZW_BIRTHDAY    = MTR_RESULT;
  119.     
  120.  
  121.     ADDRESS VALUE WWPort;
  122.     DruckString    = OFFICE.ADDRESS.ADDRESS.2 || LF;
  123.     i = INDEX( DruckString, LF);
  124.     IF i > 0 THEN
  125.         DO;
  126.             DruckTeil    = LEFT( DruckString, (i - 1) );
  127.             DruckString = SUBSTR(DruckString, (i + 1) );
  128.             i = INDEX( DruckString, LF);
  129.         END;
  130.     ELSE
  131.         DruckTeil    = DruckString;
  132.     FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.2>" CHANGE DruckTeil;
  133.     DO WHILE( i > 0 );
  134.         DruckTeil    = LEFT( DruckString, (i - 1) );
  135.         DruckString = SUBSTR(DruckString, (i + 1) );
  136.         LINE 1;
  137.         TEXT DruckTeil;
  138.         i = INDEX( DruckString, LF);
  139.     END;
  140.  
  141.     POSITION SOF;
  142.     FINDCHANGE FIND "<PRINTDATE>" CHANGE PRINTDATE;
  143.     /* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
  144.     TEXT PRINTDATE;
  145.  
  146.     POSITION SOF;
  147.     FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.0>" CHANGE OFFICE.ADDRESS.ADDRESS.0;
  148.     /* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
  149.     TEXT OFFICE.ADDRESS.ADDRESS.0;
  150.  
  151.     POSITION SOF;
  152.     FINDCHANGE FIND "<OFFICE.ADDRESS.SALUTATION>" CHANGE ZW_Anrede;
  153.  
  154.     POSITION SOF;
  155.     FINDCHANGE FIND "<OFFICE.ADDRESS.SURNAME>" CHANGE OFFICE.ADDRESS.SURNAME;
  156.  
  157.     POSITION SOF;
  158.     FINDCHANGE FIND "<OFFICE.ADDRESS.PRENAME>" CHANGE OFFICE.ADDRESS.PRENAME;
  159.  
  160.     POSITION SOF;
  161.     FINDCHANGE FIND "<OFFICE.ADDRESS.COMPANY1>" CHANGE OFFICE.ADDRESS.COMPANY1;
  162.  
  163.     POSITION SOF;
  164.     FINDCHANGE FIND "<OFFICE.ADDRESS.COMPANY2>" CHANGE OFFICE.ADDRESS.COMPANY2;
  165.  
  166.     POSITION SOF;
  167.     FINDCHANGE FIND "<OFFICE.ADDRESS.STREET>" CHANGE OFFICE.ADDRESS.STREET;
  168.  
  169.     POSITION SOF;
  170.     FINDCHANGE FIND "<OFFICE.ADDRESS.ZIP>" CHANGE OFFICE.ADDRESS.ZIP;
  171.  
  172.     POSITION SOF;
  173.     FINDCHANGE FIND "<OFFICE.ADDRESS.CITY>" CHANGE OFFICE.ADDRESS.CITY;
  174.  
  175.     POSITION SOF;
  176.     FINDCHANGE FIND "<COUNTRY.NAME>" CHANGE COUNTRY.NAME;
  177.  
  178.     POSITION SOF;
  179.     i = OFFICE.ADDRESS.STATE_NUMBER;
  180.     FINDCHANGE FIND "<COUNTRY.STATE>" CHANGE COUNTRY.STATE.i;
  181.  
  182.     POSITION SOF;
  183.     FINDCHANGE FIND "<OFFICE.ADDRESS.PHONE>" CHANGE OFFICE.ADDRESS.PHONE;
  184.  
  185.     POSITION SOF;
  186.     FINDCHANGE FIND "<OFFICE.ADDRESS.FAX>" CHANGE OFFICE.ADDRESS.FAX;
  187.  
  188.     POSITION SOF;
  189.     FINDCHANGE FIND "<OFFICE.ADDRESS.EDI>" CHANGE OFFICE.ADDRESS.EDI;
  190.  
  191.     POSITION SOF;
  192.     FINDCHANGE FIND "<OFFICE.ADDRESS.EMAIL.0>" CHANGE OFFICE.ADDRESS.EMAIL.0;
  193.  
  194.     POSITION SOF;
  195.     FINDCHANGE FIND "<OFFICE.ADDRESS.EMAIL.1>" CHANGE OFFICE.ADDRESS.EMAIL.1;
  196.  
  197.     POSITION SOF;
  198.     FINDCHANGE FIND "<OFFICE.ADDRESS.EMAIL.2>" CHANGE OFFICE.ADDRESS.EMAIL.2;
  199.  
  200.     POSITION SOF;
  201.     FINDCHANGE FIND "<OFFICE.ADDRESS.BANK_CODE_NUMBER>" CHANGE OFFICE.ADDRESS.BANK_CODE_NUMBER;
  202.  
  203.     POSITION SOF;
  204.     FINDCHANGE FIND "<OFFICE.ADDRESS.BANK_NAME>" CHANGE OFFICE.ADDRESS.BANK_NAME;
  205.  
  206.     POSITION SOF;
  207.     FINDCHANGE FIND "<OFFICE.ADDRESS.BANK_SHORT>" CHANGE OFFICE.ADDRESS.BANK_SHORT;
  208.  
  209.     POSITION SOF;
  210.     FINDCHANGE FIND "<OFFICE.ADDRESS.ACCOUNT>" CHANGE OFFICE.ADDRESS.ACCOUNT;
  211.  
  212.     POSITION SOF;
  213.     FINDCHANGE FIND "<OFFICE.ADDRESS.BIRTHDAY>" CHANGE ZW_BIRTHDAY;
  214.  
  215.     IF OFFICE.ADDRESS.SURNAME = "" THEN
  216.         ZW_SUR_PRENAME    = "Unterschrift";
  217.     ELSE
  218.         ZW_SUR_PRENAME    = OFFICE.ADDRESS.PRENAME  OFFICE.ADDRESS.SURNAME;
  219.  
  220.     POSITION SOF;
  221.     FINDCHANGE FIND "<OFFICE.SUR_PRENAME>" CHANGE ZW_SUR_PRENAME;
  222.  
  223. RETURN;
  224.  
  225.